package controlador;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

import modelo.data.VehiculoData;
import modelo.entidad.*;
import modelo.hibernate.dao.*;
import modelo.data.Util;

import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.bind.annotation.ContextParam;
import org.zkoss.bind.annotation.ContextType;
import org.zkoss.image.AImage;

import org.zkoss.util.media.Media;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zul.Filedownload;


import org.zkoss.zul.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Session;
import org.zkoss.zk.ui.Sessions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Doublebox;
import org.zkoss.zul.Grid;
import org.zkoss.zul.Image;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Label;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import org.zkoss.zul.Button;

public class ControladorPortalWeb extends SelectorComposer<Component>{

	@Wire
	Combobox cmbtipo;
	@Wire
	Combobox cmbmarca;
	@Wire
	Combobox cmbciudad;
	@Wire
	Button btnBuscar;
	
	
	List<Marca> marcas;
	DaoMarcas daomarcas = new DaoMarcas();
	
	List<Ciudad> ciudades;
	DaoCiudad daociudad = new DaoCiudad();
	
	public ControladorPortalWeb() {
		cargarMarcas();
		cargarCiudades();
		// TODO Auto-generated constructor stub
	}
	
	public List<String> getMarcas(){
		List<String> marcasc = new ArrayList<>();
		for(int i=0; i<marcas.size();i++){
			marcasc.add(marcas.get(i).getDescripcion());
		}
		return marcasc;
	}
	public List<String> getCiudades(){
		List<String> ciudadesc = new ArrayList<>();
		for(int i=0; i<ciudades.size();i++)
		{
			ciudadesc.add(ciudades.get(i).getDescripcion());
		}
		return ciudadesc;
	}
	
	public void cargarMarcas(){
		try{
			marcas = daomarcas.obtenerTodas();
			Set<Marca> marcamodel = new LinkedHashSet<Marca>(marcas);
			Iterator it = marcamodel.iterator();
			marcas.clear();
			while(it.hasNext()){
				Marca marc = (Marca) it.next();
				marcas.add(marc);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public void cargarCiudades(){
		try{
			ciudades=daociudad.obtenerTodos();
			Set<Ciudad> ciudadmodel = new LinkedHashSet<Ciudad>(ciudades);
			Iterator it = ciudadmodel.iterator();
			ciudades.clear();
			while(it.hasNext()){
				Ciudad city = (Ciudad) it.next();
				ciudades.add(city);
			}
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	@Listen("onChange=#cmbtipo")
	public void elegirTipos(){
		
		String tipo = cmbtipo.getValue();
		Session sess = Sessions.getCurrent();
		sess.setAttribute("tiposeleccionado", tipo);
	}
	@Listen("onChange=#cmbmarca")
	public void elegirMarca(){
		String marca = cmbmarca.getValue();
		Session sess = Sessions.getCurrent();
		sess.setAttribute("marcaseleccionada", marca);
	}
	@Listen("onChange=#cmbciudad")
	public void elegirCiudad(){
		String ciudad = cmbciudad.getValue();
		Session sess = Sessions.getCurrent();
		sess.setAttribute("ciudadseleccionada", ciudad);
	}
	@Listen("onClick=#btnBuscar")
	public void buscarVehiculos(){
		
	}
}
